CodeIgniter-এ অ্যাপ্লিকেশনটি প্রোডাকশন এনভায়রনমেন্টে হোস্ট করার আগে কিছু প্রস্তুতি নেওয়া জরুরি। এই প্রস্তুতির মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটি নিরাপদ, দ্রুত, এবং কার্যকরীভাবে চালাতে পারবেন। এখানে আমরা বিভিন্ন গুরুত্বপূর্ণ প্রস্তুতির ধাপ আলোচনা করবো যা আপনাকে CodeIgniter অ্যাপ্লিকেশন প্রোডাকশন পরিবেশে সফলভাবে চলতে সাহায্য করবে।
ধাপ ১: Environment সেটআপ
CodeIgniter অ্যাপ্লিকেশনটি ডেভেলপমেন্ট, স্টেজিং এবং প্রোডাকশন তিনটি পরিবেশের জন্য কনফিগার করা যেতে পারে। প্রতিটি পরিবেশের জন্য আলাদা কনফিগারেশন সেট করা গুরুত্বপূর্ণ।
.env ফাইল ব্যবহার করা
- প্রথমে
app/Config/ডিরেক্টরিতে.envফাইলটি রিনেম করুন (যদি না থাকে)। .envফাইলটি ওপেন করুন এবংCI_ENVIRONMENTপরিবর্তন করুন:CI_ENVIRONMENT = production
এই পরিবর্তনটি অ্যাপ্লিকেশনকে প্রোডাকশন পরিবেশে চালু করবে এবং প্রোডাকশন সংক্রান্ত সমস্ত কনফিগারেশন প্রয়োগ হবে।
ধাপ ২: Error Reporting এবং Debugging বন্ধ করা
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনটি নিরাপদ এবং দক্ষভাবে চলতে হলে ডিবাগ মোড বন্ধ করা উচিত এবং এরর রিপোর্টিং সীমিত করা উচিত।
app/Config/Boot/development.php ফাইলে Debugging বন্ধ করুন
প্রোডাকশন পরিবেশে debugging বন্ধ করতে, app/Config/Boot/development.php ফাইলটি ওপেন করুন এবং নিম্নলিখিত কোডটি সেট করুন:
error_reporting(0); // সব ধরনের ত্রুটি বন্ধ
ini_set('display_errors', '0'); // ত্রুটি স্ক্রীনে না দেখানো
app/Config/App.php ফাইলের debug কনফিগারেশন সেট করুন
public $debug = false; // প্রোডাকশন পরিবেশে ডিবাগ বন্ধ করুন
ধাপ ৩: Security Settings
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনটির সিকিউরিটি বাড়ানো অত্যন্ত গুরুত্বপূর্ণ। নিচে কিছু সাধারণ সিকিউরিটি কনফিগারেশন দেওয়া হলো।
CSRF Protection (Cross-Site Request Forgery)
প্রোডাকশন পরিবেশে CSRF Protection নিশ্চিত করা জরুরি। CodeIgniter-এ CSRF protection সরবরাহ করা হয়।
app/Config/Security.php ফাইল ওপেন করুন এবং CSRF সক্রিয় করুন:
public $csrfProtection = true;
HTTPS ব্যবহার
অ্যাপ্লিকেশনটি HTTPS-এ চলমান রাখতে নিশ্চিত করুন যে সমস্ত রিকোয়েস্ট HTTPS প্রোটোকল ব্যবহার করছে। app/Config/App.php ফাইলে বেস URL সেট করতে পারেন:
public $baseURL = 'https://yourdomain.com/';
Security Headers যোগ করা
XSS (Cross-Site Scripting) আক্রমণ থেকে সুরক্ষা পেতে, HTTP হেডারে সিকিউরিটি ফিচার যোগ করা উচিত:
$response = \Config\Services::response();
$response->setHeader('X-XSS-Protection', '1; mode=block');
$response->setHeader('X-Content-Type-Options', 'nosniff');
$response->setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
$response->setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self'");
ধাপ ৪: Caching এবং Performance Optimization
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে ক্যাশিং ব্যবহার করা উচিত।
Query Caching
CodeIgniter ডাটাবেস ক্যাশিং সমর্থন করে। যদি আপনার অ্যাপ্লিকেশনটি অনেক ডাটাবেস রিকোয়েস্ট করে, তবে ক্যাশিং সক্রিয় করা উচিত।
Example:
$db = \Config\Database::connect();
$query = $db->table('products')->cache(300)->get(); // ক্যাশে ৫ মিনিট
View Caching
CodeIgniter ভিউ ক্যাশিংও সমর্থন করে। যদি ভিউটি পরিবর্তন না হয়, তবে সেটি ক্যাশে রাখতে পারেন:
echo view('home', [], true); // ভিউ ক্যাশে রাখবে
ধাপ ৫: Log Files এবং Error Handling
Error logs এবং activity logs মনিটরিং প্রোডাকশন পরিবেশে খুবই গুরুত্বপূর্ণ।
Log Level সেট করা
app/Config/Logger.php ফাইলে লগের স্তর সেট করুন:
public $logThreshold = 4; // শুধুমাত্র Error, Warning, Info, and Debug log হবে।
লগ ফাইল লোকেশন কনফিগার করা
লগ ফাইলগুলি writable/logs ফোল্ডারে সংরক্ষিত হয়। এটি রাইটেবল থাকতে হবে:
chmod -R 0777 writable/logs
ধাপ ৬: Database Connection
প্রোডাকশন পরিবেশে ডাটাবেস সংযোগ নিশ্চিত করুন এবং ডাটাবেসের নিরাপত্তা কনফিগারেশন চেক করুন।
app/Config/Database.php ফাইলে প্রোডাকশন ডাটাবেস কনফিগারেশন
public $default = [
'DSN' => '',
'hostname' => 'your_production_host',
'username' => 'your_production_db_user',
'password' => 'your_production_db_password',
'database' => 'your_production_db_name',
'DBDriver' => 'MySQLi', // আপনার ডাটাবেস ড্রাইভার
'DBPrefix' => '',
'pConnect' => false,
'cacheOn' => false,
'charset' => 'utf8',
'DBDebug' => false, // প্রোডাকশন পরিবেশে ডিবাগ বন্ধ
];
ধাপ ৭: File Permissions
CodeIgniter অ্যাপ্লিকেশনটির জন্য কিছু ফোল্ডার যেমন writable/ এবং cache/ ফোল্ডার রাইটেবল হতে হবে।
Linux / MacOS এ:
chmod -R 0777 writable/
chmod -R 0777 writable/cache/
ধাপ ৮: CodeIgniter এর Cache/Debugging পরিষ্কার করা
প্রোডাকশন পরিবেশে কোডটি স্থির রাখতে, আপনার cache এবং debug logs পরিষ্কার রাখা উচিত। CodeIgniter-এর ক্যাশ পরিষ্কার করতে:
php spark cache:clear
CodeIgniter অ্যাপ্লিকেশনটি প্রোডাকশন পরিবেশে চলানোর জন্য উপরের ধাপগুলো অনুসরণ করলে তা নিরাপদ, দ্রুত, এবং কার্যকরী হবে। এই প্রস্তুতিগুলি আপনার অ্যাপ্লিকেশনকে নিরাপদ ও স্কেলেবল করতে সাহায্য করবে এবং প্রোডাকশন সার্ভারে ভালো পারফরম্যান্স নিশ্চিত করবে।
Read more